/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upn.sigemfi.vfi.beans;

import edu.upn.sigemfi.vfi.bc.CuadreCajaDelegate;
import edu.upn.sigemfi.vfi.be.CuadreCaja;
import edu.upn.sigemfi.vfi.be.SaldoCaja;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author Programador
 */
public class CuadreCajaController {

    private CuadreCajaDelegate delegado;
    private CuadreCaja cuadreCaja;
    private SaldoCaja cajaSeleccionada;
    private Double monto;

    public CuadreCajaController() {
        delegado = new CuadreCajaDelegate();
    }

    public List<CuadreCaja> getCuadreCajas() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public String nuevo() {
        cuadreCaja = new CuadreCaja();
        return "nuevo";
    }

    public String registrar() {
        //FECHA
            Date date1 = new Date();
        try {



           if (cajaSeleccionada.getMonto().equals(monto)) {

               mostrarMensaje("Exito", "El Cuadre de la caja de moneda " + cajaSeleccionada.getFidOpeMoneda().getDescripcion().toString() + " se realizo con exito", FacesMessage.SEVERITY_INFO);
               cuadreCaja.setFidVfiCaja(cajaSeleccionada.getFidVfiCaja());
              // cuadreCaja.setFecha(Date.);
              cuadreCaja.setEstado(true);
              cuadreCaja.setFecha(date1);
              cuadreCaja.setFidOpeMoneda(cajaSeleccionada.getFidOpeMoneda());

                delegado.crear(cuadreCaja);
          } else {
             // cuadreCaja.setEstado(false);
                mostrarMensaje("Error", "El Cuadre de la caja de moneda " + cajaSeleccionada.getFidOpeMoneda().getDescripcion().toString() + " tuvo un error", FacesMessage.SEVERITY_ERROR);
               cuadreCaja.setFidVfiCaja(cajaSeleccionada.getFidVfiCaja());
                // cuadreCaja.setFecha(Date.);
               cuadreCaja.setEstado(false);
               cuadreCaja.setFecha(date1);
             cuadreCaja.setFidOpeMoneda(cajaSeleccionada.getFidOpeMoneda());

              //  delegado.crear(cuadreCaja);

            }




        } catch (Exception e) {
            e.printStackTrace();
            mostrarMensaje("Error", "Hubo un error" + e.getMessage(), FacesMessage.SEVERITY_ERROR);
        }
        return "volver";
    }

    public CuadreCaja getCuadreCaja() {
        return cuadreCaja;
    }

    public void setCuadreCaja(CuadreCaja cuadreCaja) {
        this.cuadreCaja = cuadreCaja;
    }

    /**
     * @return the cajaSeleccionada
     */
    public SaldoCaja getCajaSeleccionada() {
        return cajaSeleccionada;
    }

    /**
     * @param cajaSeleccionada the cajaSeleccionada to set
     */
    public void setCajaSeleccionada(SaldoCaja cajaSeleccionada) {
        this.cajaSeleccionada = cajaSeleccionada;
    }

    /**
     * @return the monto
     */
    public Double getMonto() {
        return monto;
    }

    /**
     * @param monto the monto to set
     */
    public void setMonto(Double monto) {
        this.monto = monto;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }
}
